package controle;

import excecao.LoginOuSenhaIncorretoException;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.Usuario;
import service.UsuarioService;
import util.FabricaDeObjetos;

/**
 *
 * @author Abraao
 */
public class UsuarioMB extends BaseMB {

    private UsuarioService usuarioService;
    private Usuario usuarioCorrente;
    private Usuario usuarioLogado;
    private boolean loginIncorreto;

    public UsuarioMB() {
        try {
            usuarioService = (UsuarioService) FabricaDeObjetos.getObjetoUnico(UsuarioService.class);
            usuarioCorrente = new Usuario();
        } catch (Exception ex) {
            Logger.getLogger(UsuarioMB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public String login() {
        try {
            loginIncorreto = false;
            usuarioLogado = usuarioService.logar(usuarioCorrente.getLogin(), usuarioCorrente.getSenha());
        } catch (LoginOuSenhaIncorretoException ex) {
            this.error(ex.getMessage());
            loginIncorreto = true;
            return "loginIncorreto";
        }

        return "usuarioLogado";
    }

    public String logout() {
        usuarioCorrente = new Usuario();
        usuarioLogado = new Usuario();

        return "logout";
    }

    public String inicialLogado() {
        return "usuarioLogado";
    }

    public UsuarioService getUsuarioService() {
        return usuarioService;
    }

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    public Usuario getUsuarioCorrente() {
        return usuarioCorrente;
    }

    public void setUsuarioCorrente(Usuario usuarioCorrente) {
        this.usuarioCorrente = usuarioCorrente;
    }

    public Usuario getUsuarioLogado() {
        return usuarioLogado;
    }

    public void setUsuarioLogado(Usuario usuarioLogado) {
        this.usuarioLogado = usuarioLogado;
    }

    public boolean isLoginIncorreto() {
        return loginIncorreto;
    }

    public void setLoginIncorreto(boolean loginIncorreto) {
        this.loginIncorreto = loginIncorreto;
    }
}
